package de.hdu.mfz.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * 
 * @author teffi-deluxe
 *
 * User ist im Moment der Fahrer und der Mitfahrer
 * man kann das sicher auch sch�n mit ner Vererbung und einem
 * Kennzeichen l�sen :
 * Zus�tzlich gibt es ein kennzeichen, dass einen Admin kennzeichnet
 */

@Entity
@Table(
        uniqueConstraints=
            @UniqueConstraint(columnNames={"username"})
    )
public class User {
	
//Username deshalb, damit man sich nicht mit Vorname und Nachname anmelden muss	
	@Id
	@GeneratedValue
	private int userId;
	private String username;
	private String vorname ;
	private String nachname;
	private String email;
	private String telefonnummer;
	private String passwort;
	private boolean isAdmin;

	

	public User(String username, String vorname, String nachname, String email,
			String telefonnummer, String passwort, boolean isAdmin) {
		super();
		this.username = username;
		this.vorname = vorname;
		this.nachname = nachname;
		this.email = email;
		this.telefonnummer = telefonnummer;
		this.passwort = passwort;
		this.isAdmin = isAdmin;
			}
	
	public User() {
		super();
		
	}

	public User(String username, String vorname, String nachname){
		this.username = username;
		this.vorname = vorname;
		this.nachname = nachname;
	}
	
	public User(String username, String vorname){
		this.username = username;
		this.vorname = vorname;
		
	}
	
	
//Get- und Set-Methoden

	public int getUserId() {
		return userId;
	}


	public boolean isAdmin() {
		return isAdmin;
	}

	public void setAdmin(boolean isAdmin) {
		this.isAdmin = isAdmin;
	}

	public String getUsername() {
		return username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	public String getVorname() {
		return vorname;
	}
	
	public void setVorname(String vorname) {
		this.vorname = vorname;
	}
	
	public String getNachname() {
		return nachname;
	}
	public void setNachname(String nachname) {
		this.nachname = nachname;
	}
	
	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email) {
		this.email = email;
	}
	
	public String getTelefonnummer() {
		return telefonnummer;
	}
	
	public void setTelefonnummer(String telefonnummer) {
		this.telefonnummer = telefonnummer;
	}
	
	public String getPasswort() {
		return passwort;
	}
	
	public void setPasswort(String passwort) {
		this.passwort = passwort;
	}
	
	/** Liefert den Anzeigenamen eines Users zurück.
	 *  Er setzt sich aus Vorname + Nachname zusammen
	 *  23.05.2012 Markus
	 *  
	 * @return Anzeigename (Vorname + Nachname)
	 */
	public String getAnzeigeName() {
		return vorname.concat(" ").concat(nachname);
	}
}
